package com.hmall.trade.config;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor(staticName = "of")
public class MultiDelayCheckMsg<T>{
    /**
     * 延迟消息核心数据
     */
    private T coreMsgData;
    /**
     * 自定义延迟时间
     */
    private List<Long> delayTimes;

    /**
     * 移除并获取下一个时间
     */
    public Long pollNextDelayTime() {
        return delayTimes.remove(0);
    }

    /**
     * 判断是否还有下一个时间
     */
    public boolean hasNextDelayTime() {
        return !delayTimes.isEmpty();
    }
}
